A data processing machine is a device possessing a plurality of states and designed to process input events. In each of these states, it responds to any input event by accomplishing a sequence of predetermined data processing operations, which sequence may include initializing output events, some of which may cause the machine to pass to another state.
More specifically, such a machine may be constituted by a computer provided, inter alia, with a finite state program having a state indication capable of taking up as many values as there are states. Input events are signals of external origin input via input/output means of the computer, or else they are signals of internal origin, created by program. They are combined with the state indication to generate output events by executing a program corresponding to each combination, which output events are signals transmitted externally from the computer by the input/output means or are processed by other programs in the computer, and some of the output events may cause a change of state in the machine.
For example, if the machine is to perform analysis and decision functions in a telephone installation, then it will have as many states as such telephone processing may require (line free, line busy, sending dial tone, receiving first digit, etc.). In each state, the expected events are not only those to be expected in the normal course of setting up a call (sending digits, lines or circuits available or busy, one party or the other hanging up), but also events that are abnormal or rare (failure of some piece of equipment, hardware or software, shortage of resources, early termination of on-going dialog, etc.). It will be understood that this can lead to a large number of states, with each of them being associated with another large number of events. The machine becomes large, and thus expensive to design and develop, test, maintain, etc.
To improve this situation, thought has already been given to using a plurality of sub-machines instead of a single machine, with each sub-machine including some of the states of the machine as a whole, such that the total number of states is reduced, e.g. by giving a single machine a series of states that appear iteratively because they correspond to a function that is performed several times over while processing data. The number of events to be processed in each state remains unchanged. Furthermore, it is necessary to provide additional functions to allow the individual machines to dialog with one another and an additional switching function to direct input events to the appropriate machine(s). These additional dispositions are expensive, in particular in processing time.